using System;
using System.Collections.Generic;
using RFS.BizLogic.PaiShi.Accounting;
using RFS.Domain.PaiShi.WorkFlow;

namespace RFS.Domain.PaiShi.Accounting
{
    public interface IOrderItemBasedAccountingVoucher

    {
        // VoucherState State { get; set; }
        string ToString();

        void AddAccItem(IOrderItem gho, Account acc, string remark, Amount amountDebit = default,
            Amount amountCredit = default);

        ulong Id { get; set; }
        bool IsBalanced { get; }
        Amount Balance { get; }
        Amount DebitTotal { get; }
        Amount CreditTotal { get; }
        IProblem Problem { get; }

        IEnumerable<IOrderBasedAccItem> AccItems
        {
            get;
            // set => _accItems = value.ToList();
        }

        VType VType { get; set; }

        // decimal CumulativeAmountIncurred { get; }
        // decimal CumulativeQuantityIncurred { get; }
        // Amount AmountIncurred { get; }
        event EventHandler Changed;
    }
    
    public enum VType
    {
        系统生成,
        差异处理,
        手动制单,
    }

    
}